import { Injectable } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { BusinessException } from '@/common';

// 使用AuthGuard的local策略
// 不需要全局注册，通过@UseGuards() 装饰器被引用和使用
@Injectable()
export class LocalGuard extends AuthGuard('local') {
  // 重写以处理身份验证过程中的错误或没有用户的情况
  handleRequest(err:any, user: any) {
    if (err || !user) {
      throw new BusinessException({
        code: 400,
        message: err?.message ?? '登录失败，请检查登录信息（本地策略守卫）',
      });
    }
    return user;
  }
}
